class Watcher {
    constructor(vm, key, cb) {
        this.vm = vm
        this.key = key // data中的属性名称
        this.cb = cb  // 回调函数负责更新视图
        // 功能二 把wather对象添加到dep的subs数组中
        Dep.target = this // 把watcher对象记录到dep对象类的静态属性target
        this.oldValue = vm[key]  // 触发Observer.get方法把对象添加到dep
        Dep.target = null
    }

    update() {
        // 功能一;当数据发生变化的时候更新视图
        let newVlaue = this.vm[this.key]
        if (this.oldValue !==  newVlaue) {
            this.cb(newVlaue)
        }
        
    }

}